package org.tonny.algorithm.leetcode;

import java.util.HashMap;
import java.util.Map;

/**
 * 496. 下一个更大元素 I
 */
public class LeetCode496 {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        Map<Integer, Integer> data = new HashMap<>();
        for (int i = 0; i < nums2.length; i++) {//存放num2的数据和下标。因为元素不重复
            data.put(nums2[i], i);
        }

        int[] pos = new int[nums1.length];

        for (int j = 0; j < nums1.length; j++) {//遍历nums1,找到nums2对应数据的下标，然后找大于num1[i]的数据
            int t = 0;
            int start = data.get(nums1[j]);
            if (start == nums2.length - 1) {
                pos[j] = -1;
                continue;
            }
            for (int k = start + 1; k < nums2.length; k++) {
                if (nums2[k] > nums1[j]) {
                    pos[j] = nums2[k];
                    break;
                }
                if (k == nums2.length - 1 && nums2[k] <= nums1[j]) {
                    pos[j] = -1;
                }
            }
        }
        return pos;
    }
}